package com.cv.platform.controller.platform.history.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 视频平台 - 历史记录 Response VO
 *
 * @author Charles_XDXD
 */
@Data
@Tag(name = "视频平台 - 历史记录 Response VO")
public class CvVideoHistoryRespVO {

    /**
     * 记录编号
     */
    @Schema(description = "记录编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Long id;

    /**
     * 作者编号
     */
    @Schema(description = "作者编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Long userId;

    /**
     * 作者昵称
     */
    @Schema(description = "作者昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "作者昵称")
    private String nickname;

    /**
     * 作者头像
     */
    @Schema(description = "作者头像", requiredMode = Schema.RequiredMode.REQUIRED, example = "作者头像")
    private Long avatar;

    /**
     * 作者头像 URL
     */
    @Schema(description = "作者头像 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "作者头像 URL")
    private String avatarUrl;

    /**
     * 视频编号
     */
    @Schema(description = "视频编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Long videoId;

    /**
     * 视频标题
     */
    @Schema(description = "视频标题", requiredMode = Schema.RequiredMode.REQUIRED, example = "视频标题")
    private String title;

    /**
     * 视频封面
     */
    @Schema(description = "视频封面", requiredMode = Schema.RequiredMode.REQUIRED, example = "视频封面")
    private Long thumbnail;

    /**
     * 视频封面 URL
     */
    @Schema(description = "视频封面 URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "视频封面 URL")
    private String thumbnailUrl;

    /**
     * 视频播放量
     */
    @Schema(description = "视频播放量", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Integer viewCount;

    /**
     * 视频发布时间
     */
    @Schema(description = "视频发布时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime publishTime;

    /**
     * 播放状态
     */
    @Schema(description = "播放状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "播放中")
    private String playStatus;

    /**
     * 播放开始时间
     */
    @Schema(description = "播放开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime startTime;

    /**
     * 播放结束时间
     */
    @Schema(description = "播放结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime endTime;

    /**
     * 播放位置，单位：秒
     */
    @Schema(description = "播放位置，单位：秒", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Integer position;

    /**
     * 播放时长，单位：秒
     */
    @Schema(description = "播放时长，单位：秒", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
    private Integer duration;

    /**
     * 记录时间
     */
    @Schema(description = "记录时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime updateTime;

}
